package utils

import (
	"context"
	"github.com/redis/go-redis/v9"
	"lgb24kcs.com/im/config"
	"sync"
)

var onc sync.Once
var client *redis.Client

func NewRedisClient() *redis.Client {
	onc.Do(func() {
		client =
			redis.NewClient(&redis.Options{
				Addr:     global.App.Viper.GetString("redis.redis") + ":" + global.App.Viper.GetString("redis.port"),
				Password: global.App.Viper.GetString("redis.password"),
				DB:       global.App.Viper.GetInt("redis.db"),
			})

		err := client.Ping(context.TODO()).Err()
		if err != nil {
			panic(err)
		}
	})
	return client
}
